<?php

class PdoCombattant extends PdoConnect {

    public function create(combattant $combattant) {
        try {
            $this->open();
            $sql = "INSERT INTO `combattant`(NOMCOMBATTANT, PRENOMCOMBATTANT, SURNOMCOMBATTANT,ALLONGECOMBATTANT,TAILLECOMBATTANT,POIDSCOMBATTANT,PHOTOCOMBATTANT, IDPAYS, IDCOMBATTANT) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?) ";

            $prep = $this->pdo->prepare($sql);

            $prep->bindValue(1, $combattant->getNomCombattant(), PDO::PARAM_STR);
            $prep->bindValue(2, $combattant->getPrenomCombattant(), PDO::PARAM_STR);
            $prep->bindValue(3, $combattant->getSurnomCombattant(), PDO::PARAM_STR);
            $prep->bindValue(4, $combattant->getAllongeCombattant(), PDO::PARAM_INT);
            $prep->bindValue(5, $combattant->getTailleCombattant(), PDO::PARAM_INT);
            $prep->bindValue(6, $combattant->getPoidsCombattant(), PDO::PARAM_INT);
            $prep->bindValue(7, $combattant->getPhotoCombattant(), PDO::PARAM_STR);
            $prep->bindValue(8, $combattant->getIdPays(), PDO::PARAM_INT);
            $prep->bindValue(9, $combattant->getIdCombattant(), PDO::PARAM_INT);


            $prep->execute();
        } catch (PDOException $e) {
            $msg = 'ERREUR PDO dans ' . $e->getFile() . ' L.' . $e->getLine() . ' : ' . $e->getMessage();
            die($msg);
        }
    }

    public function readAll() {
        try {
            $this->open();
            $sql = "SELECT * From `combattant` ORDER BY NOMCOMBATTANT";
            $prep = $this->pdo->prepare($sql);

            $prep->execute();
            $prep->setFetchMode(PDO::FETCH_ASSOC);


            return $prep;
        } catch (PDOException $e) {
            $msg = 'ERREUR PDO dans ' . $e->getFile() . ' L.' . $e->getLine() . ' : ' . $e->getMessage();
            die($msg);
        }
    }

    public function readOne($IdCombattant) {
        try {
            $this->open();
            $sql = "SELECT * From `combattant` Where IDCOMBATTANT=$IdCombattant";
            $prep = $this->pdo->prepare($sql);

            $prep->execute();

            $combattant = new Combattant();
            $ligne = $prep->fetch(PDO::FETCH_OBJ);
            $combattant->setIdCombattant($ligne->IDCOMBATTANT);
            $combattant->setNomCombattant($ligne->NOMCOMBATTANT);
            $combattant->setPrenomCombattant($ligne->PRENOMCOMBATTANT);
            $combattant->setSurnomCombattant($ligne->SURNOMCOMBATTANT);
            $combattant->setTailleCombattant($ligne->TAILLECOMBATTANT);
            $combattant->setPoidsCombattant($ligne->POIDSCOMBATTANT);
            $combattant->setPhotoCombattant($ligne->PHOTOCOMBATTANT);
            $combattant->setAllongeCombattant($ligne->ALLONGECOMBATTANT);
            $combattant->setIdPays($ligne->IDPAYS);
            return $combattant;
        } catch (PDOException $e) {
            $msg = 'ERREUR PDO dans ' . $e->getFile() . ' L.' . $e->getLine() . ' : ' . $e->getMessage();
            die($msg);
        }
    }

    public function delete(combattant $combattant) {

        try {
            $this->open();
            $sql = "DELETE FROM combattant WHERE IDCOMBATTANT=?";

            $prep = $this->pdo->prepare($sql);

            $prep->bindValue(1, $combattant->getIdCombattant(), PDO::PARAM_INT);
            $prep->execute();
        } catch (PDOException $e) {
            $msg = 'ERREUR PDO dans ' . $e->getFile() . ' L.' . $e->getLine() . ' : ' . $e->getMessage();
            die($msg);
        }
    }

    public function update(combattant $combattant) {
 try {
        $this->open();
        $sql = "UPDATE combattant SET NOMCOMBATTANT = ?, PRENOMCOMBATTANT= ?, SURNOMCOMBATTANT = ?, ALLONGECOMBATTANT = ?, TAILLECOMBATTANT = ?, POIDSCOMBATTANT = ?, PHOTOCOMBATTANT = ?, IDPAYS = ? WHERE IDCOMBATTANT= ?";

        $prep = $this->pdo->prepare($sql);

        $prep->bindValue(1, $combattant->getNomCombattant(), PDO::PARAM_STR);
        $prep->bindValue(2, $combattant->getPrenomCombattant(), PDO::PARAM_STR);
        $prep->bindValue(3, $combattant->getSurnomCombattant(), PDO::PARAM_STR);
        $prep->bindValue(4, $combattant->getAllongeCombattant(), PDO::PARAM_INT);
        $prep->bindValue(5, $combattant->getTailleCombattant(), PDO::PARAM_INT);
        $prep->bindValue(6, $combattant->getPoidsCombattant(), PDO::PARAM_INT);
        $prep->bindValue(7, $combattant->getPhotoCombattant(), PDO::PARAM_STR);
        $prep->bindValue(8, $combattant->getIdPays(), PDO::PARAM_INT);        
        $prep->bindValue(9, $combattant->getIdCombattant(), PDO::PARAM_INT);

        $prep->execute();
        } catch (PDOException $e) {
            $msg = 'ERREUR PDO dans ' . $e->getFile() . ' L.' . $e->getLine() . ' : ' . $e->getMessage();
            die($msg);
        }
        $this->close();
    }

    public function exist($surnom) {
        $this->open();
        $query = "SELECT * FROM combattant WHERE SURNOMCOMBATTANT='$surnom';";
        $statement = $this->pdo->query($query);
        return $statement->rowCount();
    }

}
